import { GroupData } from "babylon-lib/data/base-data";
import { Vector3Data } from "babylon-lib/data/datas/vector3-data";
import { Vector3 } from '@babylonjs/core/Maths/math.vector';
import { BooleanData } from 'babylon-lib/data/datas/boolean-data';
import { NumberData } from 'babylon-lib/data/datas/number-data';


/**
 * 数据：
 * rootData:{
 *      isProduction:boolean data,
 *      cameraData:{
 *          cameraAlpha:number data,
 *          cameraBeta:number data,
 *          cameraRadius:number data,
 *          cameraTarget:Vector3 data, 
 *      },
 * };
 */


const rootData = new GroupData();

const isProduction = new BooleanData(true);

const cameraData = new GroupData();
const cameraPosition = new Vector3Data(new Vector3(0, 3, 10));
const cameraTarget = new Vector3Data(new Vector3(0, 0, 0));
cameraData.add(cameraPosition, cameraTarget);

const positionX = new NumberData(0);
const positionY = new NumberData(0);
const positionZ = new NumberData(0);
const scale = new NumberData(1);
const rotationX = new NumberData(0);
const rotationY = new NumberData(0);
const rotationZ = new NumberData(0);
const lightIntensity = new NumberData(1);

rootData.add(
    cameraData, positionX, positionY, positionZ, scale, rotationX, rotationY, rotationZ, lightIntensity,
);

const orders = {
    sceneFront: 'sceneFront',
    sceneUiBack: 'sceneUiBack',
    sceneUi: 'sceneUi',
    sceneUiFront: 'sceneUiFront',
    uiBack: 'uiBack',
    ui: 'ui',
    uiFront: 'uiFront',
};

const sounds = {};

export {
    rootData,
    cameraData, cameraPosition, cameraTarget,
    isProduction, orders, sounds,
    positionX, positionY, positionZ, scale, rotationX, rotationY, rotationZ, lightIntensity,
};